#ifndef EVALUATER_H
#define EVALUATER_H


typedef struct Exp_tag
{
    char* p;
    size_t s;
    size_t l;
} Exp;

typedef enum Expression_Type
{
    integer,
    real_number,
    string
} Exp_T;

typedef struct Return_Value
{
    void* v;
    Exp_T t;
} Ret;
  
typedef void* Op;
typedef void* Env;
typedef int bool;
typedef bool (*TypeFunc) (Exp);
typedef Ret (*EvalFunc) (Exp, Env);

int eval( char*, Env );

/*typedef struct Analysis_Expression
{
    const char* exp;
    Analysis_Expression** operator;
    int op_count;
    };*/

#endif
